<?php

namespace App\Controller;

use Common\Controller\BaseController;

class WxController extends BaseController
{
    private $wxUserLogic;
    private $wxLogic;

    public function _initialize()
    {
        parent::_initialize();
        $this->wxUserLogic = A('Common/WxUser', 'Logic');
        $this->wxLogic = A('App/Wx', 'Logic');
    }

    public function index()
    {
        $parentId = I('get.parentId');
        $redirectUri = 'http://www.tasksys.online'.C('WEB_DOMAIN').'/Wx/result';
        if ($parentId) {
            $redirectUri .= '/parentId/'.$parentId;
        }

        $url = $this->wxLogic->getOauthUrl($redirectUri);
        redirect($url);
    }

    public function result()
    {
        $parentId = I('get.parentId');
        $code = I('get.code');
        $state = I('get.state');
        $accessTokenRes = $this->wxLogic->getAccessToken($code, $state);
        if (!static::$res->isSuc($accessTokenRes)) {
            $this->mobileErr($accessTokenRes['Message']);
            exit;
        }
        $accessTokenInfo = $accessTokenRes['Result'];
        $openId = $accessTokenInfo['openId'];
        $accessToken = $accessTokenInfo['accessToken'];

        //获取微信用户的信息
        $wxUserInfoRes = $this->wxLogic->getUserInfo($openId, $accessToken);
        if (!static::$res->isSuc($wxUserInfoRes)) {
            $this->mobileErr($wxUserInfoRes['Message']);
            exit;
        }
        $wxUserInfo = $wxUserInfoRes['Result'];

        //获取系统的用户信息
        $sysUserInfoRes = $this->wxUserLogic->getUserInfoById('', $openId);

        //未注册的时候，注册号码
        if (static::$res->isErr($sysUserInfoRes)) {
            //注册并登陆
            $param = array(
                'openid' => $openId,
                'name' => $wxUserInfo['nickname'],
                'sex' => $wxUserInfo['sex'],
            );

            //记录推荐人id
            if ($parentId) {
                $param['parent_id'] = $parentId;
            }

            $addRes = $this->wxUserLogic->addUser($param);
            if (!static::$res->isSuc($addRes)) {
                $this->mobileErr($addRes['Message']);
                exit;
            }

            //重新获取用户登陆信息
            $sysUserInfoRes = $this->wxUserLogic->getUserInfoById('', $openId);
        }

        $sysUserInfo = $sysUserInfoRes['Result'];
        $editData = array();

        /*
         * 保存用户头像
         */
        if (empty($sysUserInfo['photo']) || 0 === strpos($sysUserInfo['photo'], 'http://') || 0 === strpos($sysUserInfo['photo'], 'https://')) {
            //将微信的用户头像转存到本地服务器
            function curl_file_get_contents($durl)
            {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $durl);
                curl_setopt($ch, CURLOPT_TIMEOUT, 2);
                curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
                curl_setopt($ch, CURLOPT_REFERER, _REFERER_);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $r = curl_exec($ch);
                curl_close($ch);

                return $r;
            }

            $photoUri = $wxUserInfo['headimgurl'];
            $imgBase64 = base64_encode(curl_file_get_contents($photoUri));

            $imageUri = '/ImgFile/UserHeadPhoto/'.date('Ymd').'/'.time().'_'.rand(1111, 9999).'.jpg';
            $fileName = WEB_PATH.$imageUri;

            if (saveImg($imgBase64, $fileName)) {
                $photoUri = DOMIAN.$imageUri;
            }

            $editData['photo'] = $photoUri;
        }

        /*
         * 保存用户省份
         */
        if (empty($sysUserInfo['prov']) && !empty($wxUserInfo['province'])) {
            $editData['prov'] = $wxUserInfo['province'];
        }

        /*
         * 保存用户城市
         */
        if (empty($sysUserInfo['city']) && !empty($wxUserInfo['city'])) {
            $editData['city'] = $wxUserInfo['city'];
        }

        if (!empty($editData)) {
            $editRes = $this->wxUserLogic->updateUser('', $openId, $editData);
        }

        //授权成功，调回首页
        redirect(C('WEB_DOMAIN').'/Index/index');
    }

    public function test()
    {
        $this->wxUserLogic->getUserInfoById(2132);
    }

    public function test2()
    {
        $list = D('User')->field('*,count(*) as count')->group('add_time')->select();
        $parentIds = array();
        foreach ($list as $vo) {
            if ($vo['count'] > 3 && !empty($vo['parent_id'])) {
                $parentIds[] = $vo['parent_id'];
            }
        }
        D_B($parentIds);

//         $list = D('Income')->field('count(*) as count, task_id,user_id,task_type')->where(array(
//             'task_id' => 47,
//         ))->group('task_id,user_id')->select();
//         $logInfo = array();
//         foreach ($list as $vo) {
//             if ($vo['count'] >= 2) {
//                 $itemList = D('Income')->where(array(
//                     'task_id' => $vo['task_id'],
//                     'user_id' => $vo['user_id'],
//                 ))->select();

//                 $userInfo = D('User')->where(array(
//                     'id' => $vo['user_id'],
//                 ))->find();

//                 D_B($userInfo['openid']);

//                 $logInfo[] = array(
//                     'userId' => $userInfo['id'],
//                     'name' => $userInfo['name'],
//                     'phone' => $userInfo['phone'],
//                     'openid'=>$userInfo['openid'],
//                     'count' => count($itemList),
//                 );
//             }
//         }
// D_B($logInfo);
        // $itemList = D('Income')->where(array(
            //     'task_id' => $vo['task_id'],
            //     'user_id' => $vo['user_id'],
            // ))->select();
            // // D_B($itemList);

            // foreach ($itemList as $key => $item) {
            //     if (0 == $key) {
            //         continue;
            //     }

                // $fileName = RUNTIME_PATH.'Logs/incomeErr/'.date('Y-m-d').'AAA.log';
                // logs($item, $fileName);
            // }
        // }
        // foreach ($list as $vo) {
        //     $voList = D('Join')->where(array(
        //             'task_id' => $vo['task_id'],
        //             'user_id' => $vo['user_id'],
        //             'state' => 3,
        //     ))->select();
        //     if (count($voList) > 1) {
        //         D_B($voList);
        //         foreach ($voList as $key => $vo2) {
        //             if (0 == $key) {
        //                 continue;
        //             }
        //             $it = D('Join')->where(array('id' => $vo2['id']))->save(array(
        //                 "other_id"=>404,
        //                 "state"=>-1
        //             ));

        //         }
        //     }
        // }

        // $list = D('List')->where(array('end_time' => array('egt', date('y-m-d H:i:s'))))->select();
        // foreach ($list as $vo) {
        //     $taskId = $vo['id'];
        //     $where = array(
        //         'task_id' => $taskId,
        //         'state' => array('neq', -1),
        //     );
        //     $joinNum = D('Join')->where($where)->count();
        //     $where['state'] = array('in', '2,3,-2');
        //     $finishNum = D('Join')->where($where)->count();
        //     $dix =D('List')->where(array('id' => $taskId))->save(array(
        //         'join_num' => $joinNum,
        //         'finish_num' => $finishNum,
        //     ));
        //     D_B($dix);
        // }
        // $userList = D("User")->field("id")->where(array("openid"=>array("like","test_%")))->select();
        // $userIds = array();
        // foreach ($userList as $vo) {
        //     $userIds[] = $vo["id"];
        // }

        // $where = array(
        //     'proof' => array('exp', "is not null"),
        //     "state"=>-1
        // );
        // $list = D('Join')->where($where)->save(array("state"=>2));
        // D_B($list);
    }

    //模拟用户
    public function testUser()
    {
        // $nameList = array(
        //     0 => '〃爱情和情爱哪个更痛',
        //     1 => '倾月轩萱_',
        //     2 => '眼泪〃是悲伤的证明',
        //     3 => '沵算what°',
        //     4 => '◇◆◇·熙',
        //     5 => 'メ稀饭你的笑',
        //     6 => '哥，淫领时尚',
        //     7 => '碎花裙．≡Elegant',
        //     8 => '塞外う飞龙',
        //     9 => '恨旳有滋有味╮',
        //     10 => '回头丶yi无路可走',
        //     11 => '曲终秂散。',
        //     12 => '亲爱的白小兔',
        //     13 => '╯玛莎拉蒂╰',
        //     14 => '我们的故事已成事故',
        //     15 => 'DIligEnCe 梦唇 &',
        //     16 => '漫长の人生',
        //     17 => '乂日光倾城¤',
        //     18 => '﹏﹏那年一路向北　',
        //     19 => '能不能勇敢一点点',
        //     20 => '虚 张 声 势丶',
        //     21 => '你永远都不知道我有多爱你',
        //     22 => '.....|还嬒继续|▍',
        //     23 => '有你很瞒促',
        //     24 => '倾听冷暖丿',
        //     25 => '让人蛋疼的小思绪ㄟ',
        //     26 => 'BLUE 16°深蓝梦境',
        //     27 => '%　忘不掉.ゎ',
        //     28 => 'www.yw11.com 起名网',
        //     29 => '执念，爱',
        //     30 => '啃樱桃小丸子',
        //     31 => '? 一个人.累',
        //     32 => '微信名字',
        //     33 => '越疯癫的女人、心越脆弱',
        //     34 => '〃把牢底坐穿╯',
        //     35 => '从未消失的孤独',
        //     36 => '只是曾经拥有≈',
        //     37 => '米修米修er',
        //     38 => '不，完美。',
        //     39 => '--==÷>》芯℃“早已铕妮',
        //     40 => '坠落↓',
        //     41 => 'や眼角⒈丝泪丶',
        //     42 => '丶猫猫er',
        //     43 => '女人、我会让你为我疯掉',
        //     44 => 'D3ath” -亡魂▍',
        //     45 => '凉岛 /MATAHARI',
        //     46 => '先生ヽ我会很诚实',
        //     47 => '低咒孤书语 (over)',
        //     48 => '带著面具过日子~',
        //     49 => '一个人演戏°',
        //     50 => '相见不如怀念〆',
        //     51 => '尐吜渔   ﹎',
        //     52 => '__没有背景丶只有背影',
        //     53 => 'ˉ夨落旳尐孩。',
        //     54 => '放手也是一种罪过‖',
        //     55 => '我的心好冷等着你来疼',
        //     56 => '哼唱 小情歌',
        //     57 => '现实▍是那样残酷',
        //     58 => '你不懂我说的我不懂',
        //     59 => '怪癖尐姐',
        //     60 => '我喜欢雨天==',
        //     61 => '再努力也换不回你的温柔ㄟ',
        //     62 => '﹌未知の未涞◆？',
        //     63 => '?、花容月貌',
        //     64 => 'ー 半 忧 伤',
        //     65 => '╰つ卸不掉的素装ゝ',
        //     66 => 'Οο`   颓废   *.',
        //     67 => '。婞褔ｖīｐ',
        //     68 => '蝶恋花╮',
        //     69 => '吥↘恠侑嗳↘',
        //     70 => '习惯有袮み、',
        //     71 => '淡淡の、清香',
        //     72 => '默默的远观',
        //     73 => '我的骄傲你永远学不来',
        //     74 => '●芣へ慬っ爱',
        //     75 => '遗忘就是幸福丶',
        //     76 => '活的像个笑话',
        //     77 => '早已▲沧海桑田',
        //     78 => '我是升级后的路人乙°',
        //     79 => '花茶Monstar 8°',
        //     80 => '撕绪/Time1ess sun',
        //     81 => '魔方　-　[magic',
        //     82 => '﹎℡默默的爱舞动Dē灵魂￠',
        //     83 => '我的痛》有谁懂',
        //     84 => '﹏在暗角的一处伤疤',
        //     85 => '抬起头╰眼泪就不会往下流',
        //     86 => '℡嫒仩沵、芣',
        //     87 => '筱┓熙┓',
        //     88 => '街角·陌路△',
        //     89 => '．!一个朲°’',
        //     90 => '何时才能学会Ｓay「Ｎo',
        //     91 => '心与口不合。',
        //     92 => 'x1n丶惘然___',
        //     93 => '挚爱°尐宝',
        //     94 => '安熙诺丶柒°',
        //     95 => '_继续俄们曾继续的继续',
        //     96 => '稚_小_葵',
        //     97 => '物事人非空自悲',
        //     98 => '姬〆小溅',
        //     99 => '仅有的骄傲是微笑//',
        //     100 => '空城依然荒凉﹌',
        //     101 => '_し零下37℃嘚心温',
        //     102 => '一切都是假的',
        //     103 => '梦みたあとで',
        //     104 => '爱就疯狂不爱就坚强',
        //     105 => '代价是折磨╳',
        //     106 => '情歌唱晚3/4 Night',
        //     107 => '〆恋旧____',
        //     108 => '吾皇万岁_万万岁',
        //     109 => '释怀得太多流泪乜多',
        //     110 => '颲僾伤o痕',
        //     111 => 'ceming.yw11.com',
        //     112 => '起名字测试打分',
        //     113 => '┞┱低头、偲惗ㄡㄜ',
        //     114 => '不会┑再哭勒',
        //     115 => '体温 ㎝ ╮',
        //     116 => '雪花ミ飞舞',
        //     117 => '失忆小姐 Seve°',
        //     118 => 'In the heart. 心头',
        //     119 => '感觉出了错',
        //     120 => '★大小姐★',
        //     121 => '天地情',
        //     122 => 'lid',
        //     123 => 'Only',
        //     124 => '东东',
        //     125 => '寻欢',
        //     126 => 'SonGo松歌',
        //     127 => '小猪宝宝',
        //     128 => 'kitte',
        //     129 => '晴天公仔',
        //     130 => '╃兲使愛檰糀',
        //     131 => 'ˋ.L.y.',
        //     132 => '天涯海角',
        //     133 => '别碰我',
        //     134 => '健平John',
        //     135 => '迷离世间',
        //     136 => '9zR7wP4x',
        //     137 => '┋尐尐新娘..',
        //     138 => '家^…^婧',
        //     139 => '王建兵',
        //     140 => '无为子',
        //     141 => '如今一个人听情歌#',
        //     142 => '痴人说梦 Stup i d-▲',
        //     143 => '天是永远静止的海 °',
        //     144 => '有多少痛谁能懂。',
        //     145 => '听说爱情回来过，',
        //     146 => '荒年°memory',
        //     147 => '眼不见心却念°',
        //     148 => '你听心口在说谎 °',
        //     149 => '爱不爱我 爱久见人心 °',
        //     150 => '人心终究抵不过变迁',
        //     151 => '你是我逃不出的城',
        //     152 => '-　　鱼忆七秒°',
        //     153 => '心中的苦涩ヅ谁懂',
        //     154 => '他的命是我的命-',
        //     155 => '　半路遗失你的情,　　　',
        //     156 => '旧人死巷破感情 う゛',
        //     157 => '起名网免费取名字',
        //     158 => '半生毁 ° - relead',
        //     159 => '梦是梦却又醒不来 #',
        //     160 => '寻梦乡音　　#',
        //     161 => '千面戏子　&',
        //     162 => '原谅丶我的口是心非',
        //     163 => '再坚强也需要人陪°',
        //     164 => '流逝在笔尖_的记忆°',
        //     165 => '少年我念你',
        //     166 => '[心病无药医]',
        //     167 => '离心　　Tnt°',
        //     168 => 'r好了伤疤忘了疼',
        //     169 => '情久不过别离',
        //     170 => '你心丢了那个我″',
        //     171 => '人不风流枉骚年.*',
        //     172 => '°旧时光她是个美人',
        //     173 => '痴人说梦 Stup i d-▲',
        //     174 => '时光不曾允许我爱你',
        //     175 => '曲以终人亦散*',
        //     176 => '为何不浪漫亦是罪 ”',
        //     177 => '我是深海请你溺水″',
        //     178 => '轻描淡写的小情绪。',
        //     179 => '祝你孤独且长命百岁 -',
        //     180 => '- 爱你是我瞎了眼',
        //     181 => '我是你的无动于衷 。',
        //     182 => '陪时间写一段回忆゛',
        //     183 => '烟熏妆遮不住的殇 °',
        //     184 => '微信名字大全浪漫名字',
        //     185 => '- 我们说好的不离不弃',
        //     186 => '爱情本来就是一场儿戏',
        //     187 => '姑娘 别被少年迷了心',
        //     188 => '自作多情是种病',
        //     189 => '空了岛还是忘了潮*',
        //     190 => '世界没变，我们变了',
        //     191 => '你若不离·我定不弃',
        //     192 => 'い 魂牵梦萦',
        //     193 => '旧城犹在人已空 -',
        //     194 => '冷了心，空了岛°',
        //     195 => '记忆里的一点阳光 >',
        //     196 => '伤痛终有结痂的一天°',
        //     197 => 'ζ????走南闯北只要你',
        //     198 => '°旧时光她是个美人',
        //     199 => '没有眼泪的痛哭',
        //     200 => '时光不曾允许我爱你',
        //     201 => '曲以终人亦散*',
        //     202 => 'こ　　空城旧梦Old°',
        //     203 => '不痛不痒心躁动 ≈',
        //     204 => '随心入骨〃',
        //     205 => '人不风流枉骚年.*',
        //     206 => '爱到极度疯狂 。',
        //     207 => '情魇￠',
        //     208 => '封心 close heart',
        //     209 => '寂寞早已成习惯█',
        //     210 => '只是伤透了心°',
        //     211 => '心早以空“',
        //     212 => '失控-　　　 Tender',
        //     213 => '人醒梦中半边痛',
        //     214 => '孤单心事゜',
        //     215 => '岛是海心上的疤 ',
        //     216 => '在不疯狂就老了い',
        //     217 => '假情假义假人心',
        //     218 => '冷了心，空了岛°',
        //     219 => '-  心不动则不痛',
        //     220 => '- 物是人非。',
        //     221 => '一日便是旧“',
        //     222 => '良人未归　　≡',
        //     223 => '我亦飘零久',
        //     224 => '曲以终人亦散*',
        //     225 => '亡鱼是深海的伤疤',
        //     226 => '念旧゜',
        //     227 => '在不疯狂就老了い',
        //     228 => '夣未醒゛',
        //     229 => '梦已经醒了 ゛',
        //     230 => '冷了心，空了岛°',
        //     231 => '犯二°moment',
        //     232 => '-  心不动则不痛',
        //     233 => '想回到旧生活°',
        //     234 => '久治不癒φ',
        //     235 => '离瑰 ⅠThe khoi',
        //     236 => ' 多余到可以被遗忘.',
        //     237 => '若是少年青涩如初',
        //     238 => '寻寻觅觅,走走停停',
        //     239 => '荒年 Memory 〆',
        //     240 => '一日便是旧“',
        //     241 => '|▍旧愛°　　dark',
        //     242 => '末日旧念 °',
        //     243 => '岁月无情仍愿意',
        //     244 => '-如果时光她寂寞。',
        //     245 => '岛是海心上的疤',
        //     246 => '?微信名字',
        //     247 => '往?事? *',
        //     248 => '阳光穿透心脏。',
        //     249 => '不念则忘。 -',
        //     250 => '有梦就别怕痛*',
        //     251 => '陌路°',
        //     252 => '良人未归　　≡',
        //     253 => '浮生- 一梦',
        //     254 => '阿呆鳥',
        //     255 => 'zmouse',
        //     256 => '自由海',
        //     257 => 'ζ貝ヽ^',
        //     258 => '思量',
        //     259 => '幸福的不知道',
        //     260 => '(@.@)',
        //     261 => '京力㊣蜗驴',
        //     262 => '未化的雪',
        //     263 => '從灬此低調丶',
        //     264 => 'ttyy',
        //     265 => 'King',
        // );

        // $data = array();
        // foreach ($nameList as $key => $name) {
        //     $idx = $key % 95 + 1;
        //     $openId = 'test_'.guid();
        //     $sex = $key % 2 + 1;
        //     $userUrl = "/taskSys/ImgFile/UserPoster/testUser/user ($idx).jpg";
        //     $info = array(
        //         'openid' => $openId,
        //         'photo' => $userUrl,
        //         'name' => $name,
        //         'sex' => $sex,
        //         'add_time' => date('y-m-d H:i:s'),
        //     );
        //     $data[] = $info;
        // }

        // $userModel = D("User");
        // $userModel->addAll($data);

        // D_B(array_flip(C("CITY_LIST")));
    }
}
